package com.guaoran.other.singleton.lazy;

/**
 * @author : 孤傲然
 * @Description :
 *  懒汉模式:
 * @date :2018/5/13 13:45
 */
public class LazySingleton {
    /**构造方法私有**/
    private LazySingleton(){}
    /**线程不安全
    private static LazySingleton lazySingleton = null;
    public static LazySingleton getInstance(){
        if(lazySingleton==null){
            lazySingleton = new LazySingleton();
        }
        return lazySingleton;
    }
     */
    /*采用双重校验锁，线程安全*/
    private volatile static LazySingleton lazySingleton = null;
    public static LazySingleton getInstance(){
        if(lazySingleton==null){
            synchronized (LazySingleton.class){
                if(lazySingleton==null){
                    lazySingleton = new LazySingleton();
                }
            }
        }
        return lazySingleton;
    }
}
